Nevron Open Vision Documentation
Framework / Resources / Resources Overview
In This Topic
    Resources Overview
    In This Topic

    Nevron Open Vision uses a tool called Nevron Resource Maker that merges all the resources you want embedded in your application to a single binary file. The result of running the Nevron Resource Maker is a C# source code file that contains the resource definitions (typically named "NResources.cs") and a binary file that contains the data for all resources called "NResourcesData.bin". When the "NResourceData.bin" file is generated for the first time, set its build action to "Embedded resource" in Visual Studio's property grid.

     Creating Resources

    The Nevron Resource Maker tool creates a resource container class (for example NResources) that contains references to each embedded resource and exposes the most common resource types as ready to use Nevron objects. You should place each file you want to use as an embedded resource in a subfolder of the resources folder based on its type. The Nevron Resource Maker expects the following directory structure:

    Nevron Resource Maker Directory Structure

    Each subdirectory has a default inlcude filter, for example the Fonts folder expects TTF files, the Images folder expects BMP, GIF, JPG and PNG files, the Text folder expects files with text content and so on. You can override the include filter for each folder in the XML settings file passed as an argument to the Nevron Resource Maker. Head to the Resource Maker topic for more information about the default include filders for the different resource subfolders and how to override them.

    To make it easier for you, Nevron Resource Maker automatically generates static, get only properties of the proper type for the embedded resources in the generated resource container class, which you can access and use directly in your code. The generated static properties have a prefix that matches the resource directory they are placed in, for example each file placed in the Images directory results in a static property of type NImage with a prefix "Image_".

     Working with Resources

    The Nevron Resource Maker creates a singleton class (usually named NResources), which exposes each of the embedded files through a static, get-only property of type based on the directory the resource file is placed in:

    Resource Directory Embedded Resource Prefix Property Type Property Prefix Description
    Binary RBIN - - Not exposed as properties. Only accessible as embedded resources.
    Cursors RCUR NCursor Cursor Exposed as NCursor instances.
    Fonts RFONT NFont Font Exposed as NOTResourceInstalledFont instances. Prior to using such font in your application, you should install it in your application's font service:
    NApplication.FontService.InstallFont(installedFont);
    Images RIMG NImage Image Exposed as NImage instances.
    Text RSTR string String Exposed as strings.

     

    The following example shows how to place an image embedded in resource in an image box:

    Using an image embedded as resource
    Copy Code
    NImageBox imageBox = new NImageBox(NResources.Image_MyImage_png);
    

     

    In many cases, especially when dealing with binary resources, you may need to get the data stream of a resource. In this case you should use the GetResourceStream method of the resources singleton class instance:

    Getting a resource stream
    Copy Code
    using (Stream stream = NResources.Instance.GetResourceStream("RBIN_MyResource_zip"))
    {
        // Process the resource stream here
    }
    

     

    If all you need is the resource byte data, then you can use the Data property of the embedded resource of interest or call the GetResourceBytes method of the resource container:

    Getting resource byte data
    Copy Code
    // Method 1 - the Data property of the embedded resource
    byte[] resourceData1 = NResources.RBIN_MyResource_zip.Data;
    
    // Method 2 - the GetResourceStream method of the resource container
    byte[] resourceData2 = NResource.Instance.GetResourceData("RBIN_MyResource_zip");
    
    See Also